﻿using Stores.Common.Configuration;

namespace Stores.Core.Domain.Themes
{
    public class ThemeSettings : ISettings
    {

        /// <summary>
        /// Gets or sets a value indicating whether
        /// asset bundling is enabled
        /// </summary>
        /// <value>
        /// 0: Auto (decide based on web.config debug)
        /// 1: Disabled
        /// 2: Enabled
        /// </value>
        public int BundleOptimizationEnabled { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether
        /// (less) css caching is enabled
        /// </summary>
        /// <value>
        /// 0: Auto (decide based on web.config dotLess configuration)
        /// 1: Disabled
        /// 2: Enabled
        /// </value>
        public int CssCacheEnabled { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether
        /// (less) css minifying is enabled
        /// </summary>
        /// <value>
        /// 0: Auto (decide based on web.config dotLess configuration)
        /// 1: Disabled
        /// 2: Enabled
        /// </value>
        public int CssMinifyEnabled { get; set; }

        /// <summary>
        /// Gets or sets a default store theme for desktops
        /// </summary>
        public string DefaultDesktopTheme { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether customers are allowed to select a theme
        /// </summary>
        public bool AllowCustomerToSelectTheme { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether mobile devices supported
        /// </summary>
        public bool MobileDevicesSupported { get; set; }

        /// <summary>
        /// Gets or sets a default store theme used by mobile devices (if enabled)
        /// </summary>
        public string DefaultMobileTheme { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether all requests will be handled as mobile devices (used for testing)
        /// </summary>
        public bool EmulateMobileDevice { get; set; }

    }
}
